一些指標的問題(2)

2021-10-25 16:22:47 字數 2721 閱讀 6373

//間接賦值的三大條件

//1. 兩個變數(普通變數、指標變數 or 實參 + 形參)

//2. 建立關係

//3. 通過*操縱記憶體

void test3_1()

void changevalue(int *p)

void test3_2()

//輸入特性

//在主調函式分配記憶體 被調函式使用

void func(char *p)

void test4_1()

; func(buf);

printf("buf = %s\n", buf);

}

void printstring(char *str)

void test4_2()

//輸出特性:在被調函式分配記憶體

void allocatespace(char **p)

void test4_3()

void test5_1()

; printf("str1 = %s\n", str1);

//字串中有'\0'的情況

char str2 = ;

printf("str2 = %s\n", str2);

//字元陣列部分初始化,剩餘的填0

char str3[100] = ;

printf("str3 = %s\n", str3);

//如果以字串初始化,那麼編譯器會在字串尾部新增'\0'

char str4 = "hello";

printf("str4 = %s\n", str4);

printf("sizeof(str4) = %d\n", sizeof(str4)); //6

printf("strlen(str4) = %d\n", strlen(str4)); //5

//換一種寫法,測試結果

char str5[100] = "hello";

printf("sizeof(str5) = %d\n", sizeof(str5)); //100

printf("strlen(str5) = %d\n", strlen(str5)); //5

//換一種寫法,測試結果

char str6 = "hello\0world";

printf("str6 = %s\n", str6);

printf("sizeof(str6) = %d\n", sizeof(str6)); //12

printf("strlen(str6) = %d\n", strlen(str6)); //5

//換一種寫法, 測試結果

char str7 = "hello\012world";// \012是乙個八進位制的數字 轉為十進位制是10 對應的ascii碼是換行

printf("str7 = %s\n", str7);

printf("sizeof(str7) = %d\n", sizeof(str7)); //12

printf("strlen(str7) = %d\n", strlen(str7)); //11

}

void copystring01(char *dest, char *source)

dest[len] = '\0';

}void test6_1()

void copystring02(char *dest, char *source)

*dest = '\0';

}void test6_2()

void copystring03(char *dest, char *source)

}void test6_3()

//字串的翻轉

//abcdefg -> gfedcba

//第一種方式:利用下標的方式

void reversestring1(char *str)

}void test6_4()

//第二種方式:利用指標的方式

void reversestring2(char *str)

}void test6_5()

sprintf(buf, "今天是%d年 %d月 %d日", 2021, 2, 10);
//拼接字串

memset(buf, 0, 1024);

char str1 = "hello";

char str2 = "world";

int len = sprintf(buf, "%s %s", str1, str2); // 返回值是乙個strlen的結果:11

printf("buf:%s, len:%d\n", buf, len);

//數字轉字串

memset(buf, 0, 1024);

int num = 100;

sprintf(buf, "%d", num);

printf("buf:%s\n", buf);

void test7_2()

一些問題(2)

關於監聽盒子的外部儲存器 usb,sdcard等 一種很常見的方法是註冊監聽廣播action media mounted action media unmounted和action media removed,來判斷外部儲存器的掛載和解除安裝,但是當有兩個usb介面時,其中乙個接入,另乙個接入後拔出...

關於一些空指標異常的一些問題

listschedultcustomproductids new arraylist if schedultcustomproductids null 這樣是不能阻擋getbyids 方法的執行的 size 0和null是不同的,new完以後,是會給他分配記憶體的,是size 0,因為給他分記憶體了...

2021 02 08 一些指標的問題(1)

4.空指標和野指標 4.1 不能向空指標和野指標指向的記憶體進行操作,如果操作程式中斷。4.2 野指標的情況 4.2.1 指標變數未初始化 4.2.2 mallo後free 未置空。4.2.3 指標變數超出了作用域 4.3 空指標 可以重複釋放。4.4 野指標 不可以重複釋放。5.指標的步長 5.1...