關於C語言的字串問題

2022-10-10 00:51:43 字數 644 閱讀 5786

1樓:匿名使用者

應該不可以,函式指標本質傳遞的是這個函式在記憶體中的起始地址,而字串不可以弄。不過高階語言分配的時候,會自動建立一個叫做 符號表 的資料結構,裡面有這個程式所有的宣告識別符號和其地址、大小等資訊,你如果可以找到訪問這個表的方法,就能實現你的這個想法了。不過我也只知道有這個東西,卻不知道如何去訪問,現在的知識還是太少了。

2樓:

char* str = "fun",就表示str是一個常量指標,指向是儲存「fun」字串的地址;

int (*fun)(),表示fun函式指標,fun = fun,表示將fun指向fun的地址;

綜上,要實現你的目地,就要使fun指向fun地址就ok,故str指向fun不就ok了麼,

那麼兩種方法,1,定義str就讓指向fun地址。void *str=fun;

2,給fun開闢fun空間,講fun地址賦給str

測試**:

// 第一種

#include

void fun()

void (* fun)();

int main()

第二種#include

void fun()

void (* fun)();

int main()

c語言字串陣列的問題C語言字串陣列的問題

include int main scanf s a for i 0 a i 0 i for j 0 j 5 j 修改 1 下標從0 4,共5個 return 0 每行結尾的 僅僅是為了連線字串使用的,如果一個字串過長,寫在一行比較不合適,就在該行結尾處加上一個反斜槓 就可以在下邊的行繼續寫這個字串...

關於C語言字串操作

對的。字串結束符 0始終是字串的一部分,這是編譯器加上去的,是為了標記字串何時結束。str s 不能這樣判斷,前者的值是地址值,即常量指標,後者的值是 s 的ascll碼,根本不能比較。改為這樣比較一個字元的字元倒可,如下 str s 注意陣列名是它的首元素地址的常量指標。如你上面所寫的即可。在定義...

c語言字串匹配程式設計問題

您好,下面的程式,測試通過!歡迎 include using namespace std void main if pb 0 break else pb b pa cout void main if pb 0 break else pb b pa printf d n local 這還不簡單,這已經...