日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

近期发现的一些-20190519

發布時間:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 近期发现的一些-20190519 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、關于符號優先級問題

算數運算符>關系>邏輯>賦值; //引用BJ內容

例如a[i]+=a[i-1]+a[i-2];表示a[i-1]先和a[i-2]相加,其結果和a[i]完成相加等于的操作。


二、對于for循環中的終止值
例如

for(k=1;k<=6;k++) {printf("will 520\n"); } printf("%d",k);//此處k已經從6加到了7

這里將打出6個will 520和k的值7。


三、對\0結束字符的替換來阻止結束
例如

#include <stdio.h> int main() {char a[4][5]={"cosz","abcd","efjh","hijk"};a[0][4]='s';puts(a[0]);//此處a[0]是首地址,因為是二維數組所以不是a而是a[0],表示從首地址開始連續打印,遇到\0結束 }

輸出
coszsabcd


四、從地址位置開始輸出打印
若為一維數組
puts(&a[3]);表示從a[3]位置開始連續輸出遇到\0結束
若為二維數組,見<三>中內容


五、宏定義函數
一直用宏定義定義常量,容易忽略宏定義函數的寫法

define A(A,B) (((B)+(A)%((A)*(B)))

表示一個函數名為A的帶有形式參數AB的函數,函數內容為后面括號中的內容,引用時例如printf("%5d",A(x,y));即可


六、關于++a和a++

a++表示先用a進行運算,后加1;
++a表示先把a加1,后進行運算。

依照例子來說明

int a=0,b=1,c=0; for(;;) {if(a++||--b||c++)//第一次訓進入循環時,第一部分為0看第二部分,第二部分為0看第三部分,第三部分為0本次不打印ok,進入第二次循環,此時a已經變成1,成立進入循環。{printf("ok");} }

七、指針聲明的復雜形式
先介紹一個法則——左右法則,官方給出的解釋是:

The right-left rule: Start reading the declaration from the innermost parentheses, go right, and then go left. When you encounter parentheses, the direction should be reversed. Once everything in the parentheses has been parsed, jump out of it. Continue till the whole declaration has been parsed.

即首先從最里面的圓括號內未定義的標識符開始閱讀看起,然后往右看,再往左看。每當遇到圓括號時,就應該掉轉閱讀方向。一旦解析完圓括號里面所有的東西,就跳出圓括號。重復這個過程直到整個聲明解析完畢。

下面用幾個例子來解釋:
-------例一:

int* (*a[5])(int, char*);

首先看到標識符名a,a是一個數組,這個數組有5個元素,每一個元素都是一個指針,指針指向int* (int, char*),指向的是一個函數,這個函數參數是int, char*,返回值是int*。
  
-------例二:

int(*)() (*c)[9];

c是一個指針,指針指向一個數組,這個數組有9個元素,每一個元素都是int(*)()(也是一個函數指針,指向一個函數,這個函數的參數為空,返回值是int型)。


八、關于數組在各個表達式中的傳遞

  • 數組在scanf、gets、printf中的應用
    例如下面:
  • char str[100]; printf("please input:\n"); gets(str) ;//注意這里并不是gets(str[]) -----這里的語句還可以替換成 scanf("%s",str);//表示從str位置開始輸入,此處str相當于首地址 ----- printf("%s",str);//注意這里相當于從str開始持續輸出,見<四>,可以減少用數組的各種問題
  • 數組在函數調用中的應用
    例如下面:
  • int exchange(char str[]) {.....} int main() {char str[100];printf("please input:\n");gets(str);exchange(str)//注意這里傳入并不是數組形式,而是把指針傳入,區別于別的變量
  • 數組在strlen函數中的應用
    首先需要注意strlen的兩個問題:
    ①引用strlen函數需要包含string.h頭文件
    ②strlen函數計算長度不計算\0結束符
    下面舉例子:
  • int main() {char str[100];printf("please input:\n");gets(str);strlen(str);//注意這里也不是加數組而是加數組名 }

    九、時刻注意變量的有效域
    一般用于儲存數據的數組應放在主函數中,除了main以外的主函數可以用了更換位置、累加計算等等,但是不適合用來儲存數據數組。(文件除外)

    總結

    以上是生活随笔為你收集整理的近期发现的一些-20190519的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。