C語言的細小知識點整理

1、register修飾符暗示編譯程序相應的變量將被頻繁地使用,如果可能的話,應將其保存在CPU的寄存器中,以加快其存儲速度

2、static是某個特定函數的局部變量,即只能在定義該變量的函數內使用該變量

static int a = 40;        
char b[] = "Hello world"; 
register int c = 50;    
printf("Hello world %d\n", a);

3.fflush(stdout)

在使用多個輸出函數連續進行多次輸出時,有可能發現輸出錯誤。因為下一個數據再上一個數據還沒輸出完畢,還在輸出緩沖區中時,下一個printf就把另一個數據加入輸出緩沖區,結果沖掉了原來的數據,出現輸出錯誤。 在 prinf();后加上fflush(stdout); 強制馬上輸出,避免錯誤。

4.

?size_t是一些C/C++標準在stddef.h中定義的。這個類型足以用來表示對象的大小。size_t的真實類型與操作系統有關。

在32位架構中被普遍定義為:

typedef ??unsigned int size_t;

而在64位架構中被定義為:

typedef ?unsigned long size_t;??
? ? ? ??size_t在32位架構上是4字節,在64位架構上是8字節,在不同架構上進行編譯時需要注意這個問題。而int在不同架構下都是4字節,與size_t不同;且int為帶符號數,size_t為無符號數。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382900.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382900.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382900.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二維數組初始化規則

二維數組初始化的形式為:數據類型 數組名[整常量表達式][ 整常量表達式]{ 初始化數據 };在{ }中給出各數組元素的初值,各初值之間用逗號分開。把{ }中的初值依次賦給各數組元素。有如下幾種初始化方式:⑴ 分行進行初始化int a[2][…

linux之緩沖區

行緩沖。在這種情況下,當在輸入和輸出中遇到換行符時,標準I/O庫執行I/O操作。這允許我們一次輸出一個字符,但只有在寫了一行之后才進行實際I/O操作。當流涉及一個終端時,通常使用行緩沖。 第一個例子:(he…

輸出一個整數的每一位(3種方法)

1.使用數組按個數輸入再按照個數輸出 int i, j, k, num, count;int a[10];printf("幾位數\n");scanf("%d", &k);for (i 1; i < k; i){scanf("%d", &a[i]);}for (i k; i > 1; i--){printf("%d\n", a[i]);} 2.使用遞歸…

linux之地址空間

程序&#xff1a;一組指令的有效集合。它是靜態的&#xff0c;不具有任何的運行意義。程序最終轉換為二進制文件。 進程&#xff1a;程序的執行就是進程。可以把它看成獨立的程序&#xff0c;在內存中有其對應的代碼空間和數據空間。一個進程所擁有的數據和代碼只屬于自己。進…

C語言操作符 進階 (常見錯誤及細節)

1.算術操作符- * / % % 只適用于整數類型運算&#xff0c;其余運算符也可用于浮點運算。2.移位操作符 左移&#xff1a;左邊丟棄&#xff0c;右邊補0&#xff1b; 右移&#xff1a;不同編譯器采取的移位方式不同&#xff0c;所有有了“右移”的程序不可移植1.邏輯移位&#xff…

輸出該數二進制表示中1的個數。求取十進制數字元素1的個數 (3種方法)

/* ***求取十進制數字元素1的個數 */int fun(int x) {int count 0;int i, j, k;/***方法2 負數不可計算&#xff0c;需要改進*/while (x ! 0){if (x & 1 1){count;}x x >> 1;}/****方法1*/while (x ! 0){x x&(x - 1);count;}return count; }int main() {in…

C語言隨機數生成超詳解

1.首先來看一段簡單的代碼 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h>int main(void) {int i;printf(" %6d\n", rand());system("pause"); }printf(" %6d\n", rand());sys…

可變參數列表

一個函數在不同的時候接受不同數目的參數。 stdarg宏可變參數列表是通過宏來實現的&#xff0c;這些宏定義于stdarg.h頭文件中。這個頭文件聲明了一個類型va_list和三個宏---va_start,va_arg,va_end。va_list用于聲明變量的類型。va_start準備訪問可變參數。va_arg用于訪問參數…

完成猜數字游戲 //C語言 猜數字游戲(編寫過程詳解)

int i, j, k;int num 0;/*生成隨機數字*/num rand();printf("%d\n", num); 選擇玩游戲還是退出 void play(int x) {printf("%d\n", x);printf("開始游戲"); } scanf("%d", &k);switch (k){case 1:play(num);case 2:break;} 循環…

靜態順序表

順序表是在計算機內存中以數組的形式保存的線性表&#xff0c;是指用一組地址連續的存儲單元依次存儲數據元素的線性結構。線性表采用順序存儲的方式存儲就稱之為順序表。順序表是將表中的結點依次存放在計算機內存中一組地址連續的存儲單元中。 順序表分為靜態存儲的順序表和動…

C語言 淺談可變參數

1.可變參數產生原因 首先來看一個簡單的例子。 int Add(int x, int y) {return x y; } int main() {int sum 0;sum Add(1, 2);//sum Add(1, 2, 3);//sum Add(1);system("pause");return 0; } 我們可以看到&#xff0c;對于這個代碼只可以計算兩個數的加法。 …

有兩個鏈表a,b,設結點包括學號,姓名。從a鏈表中刪去與b鏈表中有相同學號的那些結點。

#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct linknode { int num;char name[20];struct linknode *next; }node; node *creat() { node *h NULL,*s,*t;int d;int i 1; char name1[20];while(1) { printf("輸入第…

C語言模擬實現標準庫函數之strlen()

strlen() strlen所作的僅僅是一個計數器的工作&#xff0c;它從內存的某個位置 &#xff08;可以是字符串開頭&#xff0c;中間某個位置&#xff0c;甚至是某個不確定的內存區域&#xff09; 開始掃描&#xff0c;直到碰到第一個字符串結束符\0為止&#xff0c;然后返回計數…

C語言模擬實現標準庫函數之strcpy()

strcpy(dest,src) strcpy是一種C語言的標準庫函數&#xff0c;strcpy把從src地址開始且含有\0結束符的字符串復制到以dest開始的地址空間&#xff0c;返回值的類型為char*。 char * my_strcpy(char *str2, char *str1) {assert(*str2);assert(*str1);while(*str1!0){ *str2 …

C語言模擬實現標準庫函數之strcat()

strcat() strcat用于將兩個char類型鏈接的函數。 char * my_strcat(char *str1, char *str2) {assert(str2);assert(str1);char * p str1;while (*str1 ! 0){str1;}while (*str1 *str2){;}return p; } int main() {char str1[10] "abc";char str2[10] "de…

模板

模板是泛型編程的基礎&#xff0c;即與類型無關的邏輯代碼。 利用模板機制可以顯著減少冗余信息&#xff0c;能大幅度地節約程序代碼&#xff0c;進一步提高面向對象程序的可重用性和可維護性。 模板是實現代碼重用機制的一種工具&#xff0c;它可以實現類型參數化&#xff1b;…

C語言模擬實現標準庫函數之strstr()

strstr() strstr(str1,str2) 函數用于判斷字符串str2是否是str1的子串。如果是&#xff0c;則該函數返回str2在str1中首次出現的地址&#xff1b;否則&#xff0c;返回NULL。 char* my_strstr(const char* dest, const char* src) {char * str1 dest;char * str2 src;char …

linux-----強大的find

我又回來了。哈哈。今天我們來說一下linux中的另一個強大的find命令&#xff0c;灰常重要&#xff0c;灰常重要&#xff0c;灰常重要。顯而易見&#xff0c;find就是對某一個文件或者目錄的查找嘍。但是它的一個顯著的特點就是&#xff1a;一般放在后臺執行&#xff0c;從整個文…

C語言模擬實現標準庫函數之strchr()

strchr() 查找字符串s中首次出現字符c的位置 char * my_strchr(char *str1, char str2) {while (*str1 ! str2 && *str1 ! NULL){str1;}return str1; }int main() {char string[17];char *ptr, c r;strcpy(string, "Thisisastring");ptr my_strchr(string…

python 多人連接mysql 進行事務操作 對mysql加鎖與釋放鎖

python 多人連接mysql 對mysql進行事務操作 對mysql加鎖與釋放鎖 下面這個是user1代碼塊 # -*- coding: utf-8 -*- # user1 import pymysql import timeconn pymysql.connections.Connection(host"localhost", userdebian-sys-maint, passwordwL5wsDKDub4gT2EU…