1. 程式人生 > 其它 >【Leetcode每日筆記】830. 較大分組的位置(Python)

【Leetcode每日筆記】830. 較大分組的位置(Python)

技術標籤:指標字串c語言c++資料結構

一、指標指向地址和賦值

#include <stdio.h>
int main(){
    int a, b;
    int *pointer_1, *pointer_2;
    a=100;
    b=200;
    pointer_1 = &a;//將a的地址賦給p1
    pointer_2 = &b;//將b的地址賦給p2
    printf("%d,%d\n", a, b);
    printf("%d,%d\n", &a, &b);
    printf("%d,%d\n", *pointer_1, *pointer_2);//取指標指向的值
    printf("%d,%d\n", &pointer_1, &pointer_2);
    printf("%d,%d\n", pointer_1, pointer_2);
}
//輸出
100,200
-751756,-751760
100,200
-751764,-751768
-751756,-751760
  • &:而這玩意叫做取址操作符
  • *:這玩意叫做取值操作符
  • p1指向變數a的地址,所以a前面要加地址符&
  • p2指向變數b的地址
  • *p1指向變數a的地址中的元素(值)
  • *p2指向變數b的地址中的元素(值)

二、修改指標指向的地址

#include"stdio.h"
int main(){
   int a=12,*p;
   p=&a;//指向a的地址
   printf("%d\n",*p);//輸出p指向a的地址中的值12
   int b=56;
   p=&b;//改變指標p指向的地址為b的地址
   printf("%d\n",*p);//輸出p指向b的地址中的值56
   printf("%d %d\n",a,b);//原變數值不變,輸出12 56
}
//輸出
12
56
12 56

三、指標字串

#include"stdio.h"
#include "string.h"
int main(){
   char *word = "MrFlySand.github.io";
   for(int i = 0; i < strlen(word); i++){
      printf("%c ",*(word+i));
   }
}  
//輸出
M r F l y S a n d . g i t h u b . i o
  • strlen()獲取字串的長度,strlen(word)=19.
#include"stdio.h"
#include "string.h"
int main(){
   char *word = "mr fly sand";
   printf("%c",*(word)-32);
   for(int i = 1; i < strlen(word); i++){
      if(*(word+i-1)==' '){
          printf("%c",*(word+i)-32);
      }else{
          printf("%c",*(word+i));
      }
   }
}  
//輸出
Mr Fly Sand