程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++中指針不初始化就傳遞的問題,指針傳遞

C++中指針不初始化就傳遞的問題,指針傳遞

編輯:C++入門知識

C++中指針不初始化就傳遞的問題,指針傳遞


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;
}

  結果分別如下圖所示。


對於c指針初始化問題

你好,大致看了一下,你的圖片不是和清楚,只這樣的,一維數組名稱其實就是一個指針常量,常量是不能被賦值的,而自增、減的本質是賦值運算,所以 例如:int a[12] ; a++//這是錯誤的,
因為能對常量賦值,還有int *p;p++//這是可以的指針加減整形值,其指向移動加減的元素個數的空間,指針可以相減,但是不能相加,更不能相乘。希望能幫到你。
 

c語言 指針初始化的問題

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 *型就好了,別的沒什麼注意的!
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved