C的指针疑惑:C和指针8数组
生活随笔
收集整理的這篇文章主要介紹了
C的指针疑惑:C和指针8数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
int a[10];
int b[10];
上面申明兩個數組,不能進行以下賦值
b = a;你不能使用賦值符把一個數組的所有元素復制給另一個數組,必須使用一個循環,每次復制一個元素
?
數組和指針
int a[5]; int *b;聲明一個數組,編譯器將根據聲明指定的元素數量為數組保留內存空間,然后再創建數組名,它的值是一個常量,指向這段空間的起始位置。
聲明一個指針變量時,編譯器只為指針本身保留內存空間,并不為任何整形值分配內存空間。
?
void strcpy(char *buffer,char const *string) {while((*buffer++ = *string++) != '\0'); }注意:形參被聲明為一個指向const字符的指針。對于一個并不打算修改這些字符的函數而言,是一個號習慣。
原因有:1.這是一樣良好的文檔習慣。有些人希望僅觀察該函數的原型就能發現該數據不會被修改,而不必閱讀完整的函數定義
2.編譯器可以捕捉到任何試圖修改該數據的意外錯誤
3.這類聲明允許向函數傳遞const參數。
?
指向數組的指針:
int (*p)[10]:指向整形數組的指針。
可用于二維數組:
int matrix[3][10];
int (*p)[10] = matrix;
?
指針數組:
int *api[10]; ?//10個元素,每個元素都是一個指向整形的指針
轉載于:https://www.cnblogs.com/Caden-liu8888/p/6445300.html
總結
以上是生活随笔為你收集整理的C的指针疑惑:C和指针8数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据 中序遍历 和 后序遍历构造树(Pr
- 下一篇: castle windsor学习----