C++中指針的使用。以前在使用指針之前都會初始化。今天沒有初始化,然後指針傳遞後沒有內容(testptrnoret),後來發現返回指針的話(testptrret),就可以了。
// testptr.cpp : 定義控制台應用程序的入口點。 // #include "stdafx.h" int* testptrret(int* a,int n) { a = new int[n]; for (int i = 0; i < n;i++) { a[i] = i; } return a; } void testptrnoret(int* a, int n) { a = new int[n]; for (int i = 0; i < n; i++) { a[i] = i; } } int _tmain(int argc, _TCHAR* argv[]) { int* a=0; a = testptrret(a, 4); int* b = 0; testptrnoret(b, 4); return 0; }
結果分別如下圖所示。
你好,大致看了一下,你的圖片不是和清楚,只這樣的,一維數組名稱其實就是一個指針常量,常量是不能被賦值的,而自增、減的本質是賦值運算,所以 例如:int a[12] ; a++//這是錯誤的,
因為能對常量賦值,還有int *p;p++//這是可以的指針加減整形值,其指向移動加減的元素個數的空間,指針可以相減,但是不能相加,更不能相乘。希望能幫到你。
main()
{
char *str1, *str2;
str1 = (char*)malloc(16);
str2 = (char*)malloc(16);
str1 = "shabi"; // 去掉{}
str2 = "bushishabi"; // 去掉{}
printf("%s\n%s\n",str1,str2);
// 要釋放,不然內存洩漏!程序退出後,操作系統不回收此段內存,不能再用了,浪費!
free(str1);
free(str2);
}
// %s 對應的參數是 char *型就好了,別的沒什麼注意的!